Printers exist in a variety of forms and combinations, such as impact, thermal, dot-matrix, laser, or xerographic. Typically, printers require a supply of a media on which to print, which will usually take the form of either a continuous roll of paper, plastic or other print media, or individual sheets. The printer will include a printhead and often includes a drive system for causing relative movement between the print media and the printhead. The printhead is usually controlled by way of a print logic which outputs a print command to a print driver, which in turn provides energizing signals to the printhead. The print command may be composed of print data and a strobe signal, where the print data represents whether or not a respective print element or resistive element is to be activated, and the strobe signal determines the duration, period or intensity with which the respective element will be activated.
Errors may be introduced in the printed output due to variations in a variety of printing parameters, such as the speed of the media relative to the printhead, the speed of the printhead, the thermal lag time of the resistive elements in a thermal printhead, heat generated by adjacent resistive elements and the composition of the media. For example, in the case of dot-matrix printed characters formed by a thermal printhead, an increase in speed of the media relative to the printhead introduces elongation or dot smear. This is a particularly acute problem in the case of bar code symbol printing, since the symbol encodes information in the width of the bar and the space elements. In another example, the previous temperature of a resistive element, as well as, the temperature of adjacent resistive elements can have a negative effect on the dimensions and quality of the printed image unless adequate compensation is provided. Bar code symbols are just one type of machine-readable symbol in which the tolerance of the printed image is closely related to the reader's ability to capture the image in a single scan, and to correctly interpret the captured image.
One attempt to solve the problem presented by variations in printing parameters is disclosed by Ulinski, Sr. et al. in U.S. Pat. No. 4,699,531. The Ulinski reference is specifically directed to correcting errors introduced in bar code characters of a bar code symbol. Ulinski teaches the placement of a bar code scanner immediately after the printhead in a bar code printer. Once an entire bar code label has been printed, the bar code scanner scans across the printed label, reducing the information in the bars and spaces to dimensional information. The dimensional information is then used to uniformly adjust the duration of voltage application to the thermal elements of the printer to improve the print quality of subsequently printed symbols. Ulinski is thus limited to rejecting a label after it has been printed, and cannot update the print logic while the label is being printed. Ulinski is also limited to detecting errors only in picket fence mode printing. Again, this is due the nature of scanning which requires that every bar and space character of the symbol be scanned before it can be interpreted. Finally, Ulinski is limited to detecting errors in bar code symbols and would not work for other symbols such as alphanumeric characters and pictures or 20 bar code symbols.
Another attempt to solve the problem is disclosed in U.S. Pat. No. 5,564,841 issued to Austin et al. Austin discloses a printer and scanner combination which scans the output image from the printer using a verifier, and adjusts the printer operating parameters (print speed, head pressure, burn duration) based on the quality grade produced by the verifier. A verifier is a commercially available instrument to automatically determine if a symbol's dimensions are in compliance with published 2-dimensional symbol specifications. Like Ulinski, the verifier in Austin is only capable of examining a symbol as a whole. Therefore Austin is limited to rejecting a label after it has been printed, and cannot update the printer parameters while the label is being printed. Austin, like Ulinski, is therefore also limited to detecting errors in picket fence mode printing, and would not be capable of inspecting drag mode printing. Austin is also limited to linear bar code symbols and would not work for other symbols such as alphanumeric characters and graphics and 20 bar code symbols. Additionally, neither Austin nor Ulinski would permit a printer operating parameter, such as printer speed, to be purposely increased, since in each case the disclosed inventions would respond to the dot smearing induced by the increased printer speed by adjusting the printer operating parameter downward to eliminate the smearing in the printed image.